package jp.syuriken.snsw.terenaibot;

import java.util.Date;

/**
 * ポストを格納するラッパ。
 * 
 * <p>nullオブジェクトの作成は{@link NullPost}を使用するべきです。</p>
 * 
 * @author $Author: snswinhaiku.lo@gmail.com $
 */
public class Post {
	
	/** ユニークなポストID（ベンダー依存）*/
	protected long postId = 0;
	
	/** ポスト日時（ベンダー依存）*/
	protected Date postDate = null;
	
	/** ラッパ元クラス */
	protected Object original = null;
	

	/**
	 * インスタンスを生成する。できれば避けるべきです。
	 */
	protected Post() {
	}
	
	/**
	 * Twitterステータスからインスタンスを生成する。
	 * 
	 * @param status Twitterステータス
	 */
	public Post(twitter4j.Status status) {
		postDate = status.getCreatedAt();
		postId = status.getId();
		original = status;
	}
	
	/**
	 * オリジナルなクラス。
	 * 使用時はかならずinstanceofを使うこと。
	 * 
	 * @return ラッパ元のクラス
	 */
	public Object getOriginal() {
		return original;
	}
	
	/**
	 * ポストされた日時（ベンダー依存）を取得する
	 * 
	 * @return ポストされた日時
	 */
	public Date getPostDate() {
		return (Date) postDate.clone();
	}
	
	/**
	 * ユニークなID (ベンダー依存) を取得する 
	 * @return ユニークなID
	 */
	public long getPostId() {
		return postId;
	}
}
